1. Field of the Invention
The present invention relates primarily to a data communication using ATM (Asynchronous Transfer Mode) cells, and in particular, to a scheme for error control on AAL (ATM Adaptation Layer) in ATM networks.
2. Description of the Background Art
In order to adapt variety of information to a communication mode using ATM cells, it is necessary to provide an inter-work between an ATM network and an upper layer, and an AAL to fulfill this function is provided between an ATM layer and an upper layer.
FIG. 1 shows a configuration of an AAL Type 5 as an example of an ATM adaptation layer. In a case of the Type 5, the AAL generally comprises a CS layer (Convergence Sublayer) and an SAR (Segmentation And Reassemble) layer. The CS layer further comprises two sub-layers including a CPCS (Common Part CS) layer to deal with processings required for all types of service, and an SSCS (Service Specific CS) layer to deal with processing specific to each type of service. This SSCS layer may be null. The SAR layer primarily carries out data segmentation/reassembling processing. Namely, at a time of data transmission, data are segmented in units of payload size, i.e., 48 octets for which an ATM header can be attached at the ATM layer, and given to the lower layer. On the other hand, at a time of data reception, data in units of payload size are received from the lower layer, reassembled into CS-PDU (CS-Protocol Data Unit), and given to the CS layer.
Currently, there are four types of AAL that have been standardized by an organization such as ITU-T, depending on types of information to be dealt with. More specifically, AAL1 is for a real time communication of speeches, images, etc. at a fixed bit rate, AAL2 is for a real time communication at a variable bit rate, and AAL3/4 and AAL5 are for a variable data communication, where AAL3 and AAL5 are for a connection-oriented (CO) communication while AAL4 is for a connection-less CL) communication.
Among them, AAL3/4 and AAL5 in particular are for data communication, so that there can be applications designed for them which require a rigorous accuracy of data which does not tolerate an error for even one bit, that is, a high reliability which guarantees a complete coincidence of received data and transmitted data. Also, even in cases in which a high QOS is required to real time applications designed for AAL1 or AAL2, a reliability of data itself will be a key factor.
However, the ATM techniques have been standardized only for primitive sections so far, and an error control function on AAL has not been provided sufficiently. For this reason, in order to provide a data communication requiring a rigorous data accuracy to users of AAL3/4 or AAL5, it is necessary to implement a protocol for guaranteeing data reliability at a not yet standardized upper layer, above the CPCS layer in a case of AAL5 for instance. Namely, for AAL5, the specifications for the CPCS layer and lower layers have already been standardized, so that an addition of a service dependent new function must be made at an upper layer above the CPCS layer.
There are known examples to this end, including a scheme for implementing a protocol based on data re-transmission control at the SSCS layer (such as a Q.SAAL protocol of ITU-T), and a scheme for setting the SSCS layer null and implementing a transport layer protocol (such as TCP (Transmission Control Protocol), or OSI/TP4) (Open Systems Interconnection Transport Protocol class 4) above the SSCS layer. All of these known schemes are basically a scheme for securing data reliability by using of data re-transmission.
However, there are reasons to expect a future increase of data communication regions for which an implementation of the error control scheme based on data re-transmission as noted above on ATM terminals is insufficient, such as the following.
(1) There is an expectation for a future increase of a number of applications which require a real time performance for a large capacity (for which a data re-transmission control is basically not permitted) as well as a high data reliability, such as large capacity transactions.
(2) The communication networks such as LAN, MAN, WAN, etc. are globalizing, and a securing of a latency and an error control based on data re-transmission become incompatible for a global communication network (because of an enormous amount of time required for the data re-transmission).
(3) In general, the error control scheme based on data re-transmission uses a group of upper layer packets (such as a group of TCP packets or layer 4 packets for example) as a unit of re-transmission, and therefore a re-transmission of large data is required even for a data loss in a relatively small unit such as a cell loss, so that this scheme can cause a significant waste of network resources.
In particular, when the real time performance is of importance, a use of the error control scheme based on data re-transmission is highly impractical because the higher priority must be given to the securing of the real time performance.
As a solution to this problem, the present inventors and others have proposed a scheme for implementing FEC (Forward Error Correction) on AAL5. (See, H. Esaki, et al.: "Evaluation of High Speed Multimedia Communication Architecture in ATM networks", IEICE Transactions on Communications, Vol. E77-B, No. 11, pp. 1407-1419, November 1994, for example.) This scheme adopts a different approach to realize a reliable communication in which a communication is made by attaching error correction codes to transmission data such that a reproduction of lost data can be carried out at a receiving side even when some data losses or errors are caused within a network.
More specifically, in this scheme, codes similar to the error correction codes provided as an option on the CS layer of AAL5 are applied to sections above the SSCS layer of AAL5. In AAL1, the data re-transmission is practically impossible because the real time communication of speeches, images, etc. from a transmitting side to a receiving side is to be realized, so that there is a measure to strengthen a protection against an error during transmission by way of attaching error correction codes to transmission data. By attaching FEC redundancy codes to data for AAL5 in a substantially similar manner as this interleave scheme provided for AAL1, a real time communication using no data re-transmission or a reliable communication can be guaranteed.
The reasons for using AAL5 rather than AAL3/4 in this scheme are the following.
(1) While the ATM scheme is considered as the most prospective candidate for a next generation communication scheme, AAL for data communication (i.e., AAL5), for which the standardization by standardization organizations such as ITU-T and ATM forum is in progress, has a very high likelihood for being implemented on future high speed terminals (including multimedia terminals).
(2) AAL5 is aimed at realizing a high throughput and a low latency.
It should be noted, however, that it is equally possible to implement this scheme on AAL other than AAL5.
In this implementation, in order to carry out FEC as done on AAL1, it is necessary for a transmitting side to write data given from the upper layer into matrix shaped interleavers once and attach redundancy codes to data, before transferring data. Also, it is necessary for a receiving side to identify locations within the interleavers at a time of transmission for data (cells) which should have arrived but lost, or which have arrived with delays beyond a tolerable range. In AAL1, a sequence number (SN) is attached to a cell at the SAR layer by the default processing, so that it is possible to utilize this sequence number in a case of carrying out FEC as an option, and it is always possible to identify a location or an error. However, in AAL5, there is no processing for identifying a location. For this reason, it has been proposed to provide a function to attach FEC redundancy codes and SN at the SSCS layer which is currently set to be null.
Now, an interleaver considered for use in this scheme has been the same as that used in AAL1, which has a fixed size area for writing data. In AAL1, data to be transferred are CBR (Constant Bit Rate) data such as speeches, so that it is known in advance that data are going to be given from the upper layer continuously at a constant rate, and therefore it suffices to use an interleaver of a sufficiently large fixed size. However, in a case of data transfer, data of what size is going to be given from the upper layer at what timing is unknown in advance. Consequently, when an interleaver of a fixed size is used, if data to be transferred has a size which is considerably smaller than a size of an interleaver, it is necessary to output dummy cells by padding a remaining area with dummy data. This can be particularly problematic when data to be transferred has an overall size which is much smaller than a size of an interleaver, or when data to be transferred in a plurality of interleavers include the last part of data in the last interleaver which has a size much smaller than a size of an interleaver, as considerably many dummy data would be required.
Thus, a use of such an interleaver prevents an effective use of bandwidth, and induces an increase of unnecessary traffics, which could possibly cause a congestion. In addition, unlike the conventional case of AAL1, whenever dummy data are to be entered into each interleaver, there is a need to provide an indicator section in each interleaver in order to indicate where the dummy data start, and there is a need to provide a mechanism for recognizing this indicator section accurately at a receiving side. Such a mechanism has not even been considered in relation to an interleaver used in the conventional AAL1.
Moreover, an existing interleaver carries out a data reading only after all the data given from the upper layer are written into a memory once, so that when writing and reading directions are perpendicular to each other, a latency becomes as much as a time necessary for writing into one interleaver at least. For example, a size of the data region in one interleaver provided as an option on AAL1 in the ITU-T recommendation I.363 is 47.times.124=5828 octets, and an output of data to the lower layer will be suspended during a period from a timing at which a writing of data into the first column of this region begins until a timing at which a writing of data into the last column of this region begins.
As an alternative interleave scheme, there is a recent proposition of an oblique interleave in which reading and writing directions intersect obliquely, as disclosed in "Status Report on AAL1/2 for video signal transport", ITU-T, SG XIII, Working Document TD/27(Rev.) (13-2)-E, March, 1994-at Geneva. However, even in this interleave scheme, a latency can be reduced to only a half of that in the above noted interleave scheme using perpendicular intersecting reading and writing directions.
In this regard, Matsuzaki et al. "A Study of Error Correction Method with the Alignment between ATM cell and MPEG-2 Transport Packet", The 1994 IEICE Spring Conference, B-853, p. 3-348, March, 1994, disclosed drawings of an interleaver which appears as if reading and writing directions are identical. However, this reference provides no explanation of these drawings, and it is considered on a general ground that this reference requires an operation to write all the data into the interleaver once and then read the data from the interleaver, and that this reference also requires a memory region in a size equivalent to a size of the interleaver for the sake of data writing and reading. It is also noted that this reference aims at accommodating TS (Transport Stream) packets of MPEG-2, and for this reason, a size of a data region of an interleaver shown in drawings is limited to an integer multiple of 188 byte. Consequently, this interleaver is incapable of dealing with arbitrarily variable data to be handled in AAL5.
Furthermore, when FEC redundancy codes are attached to data to be received at a receiving side, the conventional scheme such as that used in AAL1 also has a problem in that at least as much delay as a time required for attaching FEC redundancy codes at a time of transmission conventionally is caused in every deinterleaver processing at a time of reception. This is because, at a time of reception, it is necessary to carry out a processing to store all the arrived data into deinterleavers sequentially, regardless of whether each data belongs to a data region or an FEC redundancy region. Also, in AAL1, it is possible to detect a cell loss by using SN, but a function to detect and correct a bit error within data is provided only by FEC redundancy codes, so that in order to check whether each data is correct or not, it is necessary for a receiving side to carry out a decoding processing using FEC with respect to all the data. The delay caused by these processings can be particularly wasteful in a case where bit errors occur very rarely compared with cell losses such that most data are correct.
Up to this point, the background art concerning a general case including one-to-one communication has been described. In the following, the background art concerning a case of multicast communication in particular will be described.
As a protocol stack for multicast that is widely used in general presently, there exists IP (Internet Protocol) transfer using IP multicast address. In a currently available system, UDP (User Datagram Protocol) is usually used as an upper layer protocol in a case of carrying out IP multicast. Unlike TCP (Transmission Control Protocol), this UDP is a protocol which does not guarantee a reliability end-to-end, so that an error correction is not carried out even when a packet is discarded or a bit error is caused in a course of packet transfer. As a consequence, even if an error rate per one data link is small, as a number of receiving sides increases, an error rate from a point of view of a transmitting side often becomes quite large.
However, an increase of applications such as digital media which adopt multimedia broadcast mode is expected in future, and for such an application, a protocol such as the above noted IP+UDP which does not guarantee data reliability has a possibility of causing an inconvenience in that correct data cannot be reproduced immediately at a receiving side.
In this regard, there are MTP (Multicast Transport Protocol) and RMP (Reliable Multicast Protocol), which are layer-4 protocols which have a function to guarantee data reliability under multicast environment. In these protocols, when an error occurs during data transfer, a transmitting side re-transmits an identical data in response to a re-transmission request from a receiving side. Although such an error correction based on re-transmission can guarantee data reliability, it is impossible for these protocol to guarantee real time performance at the same time.